Add additional method to UpgradeProcess.Alterable that verifies if the alter is needed. For example:
- AlterColumnName: Only needed if the new column doesn't exist already in the table.
- AlterColumnType: Only needed if current column type is different.
- AlterTableAddColumn: Only needed if new column doesn't already exist in the table.
- AlterTableDropColumn: Only needed if column to drop exists in the table.