Is there a way to load a UObject into memory if its already loaded (overriding the previous load)?

Lets say i have a Texture asset (just as an example it will be the texture, it can be any UObject)
References are:

Texture → Material → Static mesh → Actor → World.

Lets say i changed the first asset, and now need to perform the LOAD operation again in runtime, without breaking references.

(Mark as garbage → Garbage call → Load) ||| ← isnt a solution, it crashes the game (which is obvious since our refs become invalid).

Everything here is happening in RUNTIME