Added the ability to define requirements for migrations (in case some data or state needs to be loaded for a migration to be able to be performed correctly)