IntelliJ interacts with a running JVM through the standard Java debugging interface, so it can debug programs’ against different JDKs. This does not support moving the execution point around as you describe.
It does let you wind the call stack back and perform a method call again. In IntelliJ, use the threads window to select a stack frame of a suspended thread and wind back to it. Then continue the thread to re-call the method at that point in the program.
Note: this will not roll back the state of the objects, so strange effects may occur.