public new void MigrateUp(long targetVersion, bool useAutomaticTransactionManagement)
        {
            VersionLoader.LoadVersionInfo();

            var validationVersionLoader = VersionLoader as ValidatingVersionLoader;

            if (validationVersionLoader == null)
            {
                throw new ArgumentException(
                          string.Format("Class of type {0} is required, {1} given",
                                        typeof(ValidatingVersionLoader).FullName,
                                        VersionLoader.GetType().FullName
                                        )
                          );
            }

            var storedMigrationInfos = validationVersionLoader.StoredMigrationInfos;
            var availableMigrations  = MigrationLoader.LoadMigrations().ToList().ToDictionary(x => x.Key, x => x.Value);

            FilterAndValidateMigrations(storedMigrationInfos, availableMigrations);
            ValidateEnvironmentAttributeUsage(availableMigrations);

            base.MigrateUp(targetVersion, useAutomaticTransactionManagement);
        }