1) Once a process is running in version X, it keeps running in version X of a process-definition, regardless of new versions being present in the system. Process-instance migration is difficult (due to potential mismatch with existing activities). You can, however, use an internal "command" to change the version of a process-instance to a newer one, if there are no conflicts.
2) We have a history-trace. Take a look at the HistoryServcie to see what entities that can be queries (completed processes, taks, activities and variables).