No need for do-over. Crimea had a right to leave Ukraine and then it was illegally stripped of that right. Not to mention that Sevastopol was not even part of Ukraine.
It's hard to believe but that's what happened. And the reason why it happened is because nobody in Ukraine/Russia/Belarus took USSR dissolution seriously, everyone thought, well, we will have this another union of independent states and we are all friends, we are all slavs, there is nothing to fight about. Basically as far as Belarus/Ukraine/Russia and even central Asia republics were concerned, dissolution did not happen at that time, it was just replaced with
https://en.wikipedia.org/wiki/Commonwealth_of_Independent_States .
So Russia started to pay rent for the base which was not ukrainian and was not on Ukrainian land. I mean if you look at the map you would say yeah, it's natural for it to be ukrainian but it was not. That's crazy but that's what happened.
After NATO decided that they would like to have that base, Russia said - nope, you are not having it, hence Crimean referendum which was legal and results should be respected. Crimeans did actually vote to leave Ukraine and go back to Russia.