How Flowable engine takes versioning of forms while displaying


How is Flowable engine decide which form version to choose?

While designing the process in modeler, we inject form key and form reference in the properties pane of user task.
After which we deploy the process and start new process instances.
Now, even if we make changes to form after the previous deployment and make new app deployment, the previous process instance takes the old version which was present at the the time of deployment and the same with latest forms and latest deployment.
How is it tracking the versioning details without version being injected while creating a new process definintion?