As you may already know, most of the modules that come with Sitefinity are based on the Generic Content module. The reason for this is to reuse common functionality as metafields, tagging, categories... and versioning or history. We encourage most of our clients to also base the custom modules they develop on Generic Content and use whatever is suitable in their scenario.
What would happen in this case:
- one table will be used to store all content in the database
- another one will be used to store metadata
- a third one will be used for versions of the content
- data between modules is differentiated according to the application name, not which table it comes from
That said, history basically comes out of the box for all modules based on generic content. You can still implement this yourself, but I recommend that you use our API for the purpose and don't spend the time. Another advantage is that we would be able to help you in future support inquiries much faster.
the Telerik team