Objects that are stored in your bucket before you set the versioning state have a version ID of null
Since we treat unversioned as a special case of versioned buckets, we have unique version ids even for unversioned.
In practice this means, that after switching on versioning a user can't address existing objects under the version id "null".
A simple way to be more like S3 would be to set all version ids to "null" on the unversioned -> versioned transition.
S3 demands that all objects created in an unversioned bucket will have the "null" version id / instance after a bucket becomes versioned.
From https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html
Since we treat unversioned as a special case of versioned buckets, we have unique version ids even for unversioned. In practice this means, that after switching on versioning a user can't address existing objects under the version id "null".
A simple way to be more like S3 would be to set all version ids to "null" on the unversioned -> versioned transition.
S3 tests: