protected void checkForColumnDefinitionChanges(GenericSchemaChanges changes, DbTable sourceTable, DbColumn sourceColumn, DbTable targetTable, DbColumn targetColumn){
List<ColumnPropertyChange> propertyChanges = new ArrayList<ColumnPropertyChange>();
checkForColumnTypeDefinitionChange(propertyChanges, sourceTable, sourceColumn, targetTable, targetColumn);
checkForColumnDefaultValueChange(propertyChanges, sourceTable, sourceColumn, targetTable, targetColumn);
checkForColumnNullableChange(propertyChanges, sourceTable, sourceColumn, targetTable, targetColumn);
checkForColumnCommentChange(propertyChanges, sourceTable, sourceColumn, targetTable, targetColumn);
checkForColumnUniqueChange(propertyChanges, sourceTable, sourceColumn, targetTable, targetColumn);
if(!propertyChanges.isEmpty()){
changes.add(new ColumnDefinitionChange(targetTable, targetColumn, sourceColumn, propertyChanges));
}
}