Data versioning captures the exact state of a dataset at a point in time and labels it, so the same data can be retrieved or rebuilt later.
It works the way code versioning does, except the thing under version control is the data itself: its rows, schema, and distributions as they stood when a result was produced. A simple snapshot keeps a copy and stops there.
Versioning goes further by binding each model run to a specific, comparable state, which lets a team diff two versions to see what moved and return to the exact one a past result was built on. For AI this is what makes a result reproducible after the underlying data has shifted in production.