[DBAL-944] Fix table column alteration on DB2

Replacement for #633 as it was messed up, incomplete, untested and wrong.
Lots of loops/conditionals added: can they be stashed into private methods?