I solved my problem by simply adding a checkbox so the user can decide if the object will be published or not. Perhaps not a perfect solution, but it did the job for me.
Hmm, thats an idea.
Its a bit more work, but you could create an extension to HiddenFormField that is responsible for publishing these DataObjects on publish?
I've been able to get the versioned extension working on my DataObject! (sort of...)
$this->Fields() didn't work for me either, I was getting the same method error that someone else was getting, so I specified the DataObject I was trying to version - instead of $this->Fields, I used $this->HomepageResources() (substitute for your DataObject Class name)
So, the versioned table works if you add new entries, or if you change existing ones, HOWEVER, it does not update if I delete a entry.
Does anyone have any idea why this is happening or how to fix it?