It could be as simple as

Table.sqlmeta.addColumn(UnicodeCol('name'), changeSchema=True)

Yes  we are using addColumn method and it works great (Firebird SQL).

The other question still remains: "How to find if the table was updated already". We are maintaining hundreds of the databases with the same structure on different machines and we were not sure where the table was already updated and where not.

Because of that, we were using following (but I do not know if it is the best way):?

from kinterbasdb import ProgrammingError
    try:                                                                                                                      [0]                                   
    except IndexError:
       # this means table Table is OK, new column(s) was created already, no data in the column
    except ProgrammingError:
       Table.sqlmeta.addColumn(UnicodeCol('name'), changeSchema=True)