I am trying to use taxonomy for navigation. I wanted to know if there is a way to have versions of taxonomy.
Taxonomy, like Folders and Structure Groups, does not have versioning functionality from Tridion.
If you would like to know who changed what and when, without rolling back, it is fairly simple. You would write an Event System class that listens for the Save Keyword event and writes this info to a DB (OrmLite, SQLite, MongoDB, etc) and then write an asp.net page that sits on the Tridion CMS to display the list of keyword information.
If you want to have the ability to rollback then you would need to store additional information. I would look at getting the XML of the item from Tridion, and see if it contains everything you need to create the item again. If not, I would suggest adding the extra info into the Tridion XML document, and persisting the XML to the DB as one record.
Finally, if you want to also be able to rollback or restore the older version, you would need to use the UpdateXML method, or something similar, to update the keyword and use the older XML for it.
Overall, not too tricky to do, and depends on what use case you need to solve.
This would need to be custom functionality as Rob already mentions in his answer. I'd like to add that you can store your custom versioning data in AppData for each keyword. No need for a custom DB.