From the docstring, I thought fragment=False implied that the sql will be returned in the second member of the returned tuple:
```python 
if fragment:
   return [], [(sql, params or [])]
else:
  # add the SQL fragment to the full statement alter column statement
   default_values.update({'changes': sql})
   sql = self.sql_alter_column % sql # not default_values, that's been used already
   return [(sql, params or [])], []
```