So we're fetching the object prior to every delete? That does let us get its version, but it seems awfully expensive.
(I see this function looks different by the end of the branch but we're still doing the fetch prior to remove.)