Hi bhola!
It's not activiti specific (de)serialization, just java (de)serialization.
In general if you set serialverionUID, serialization survives addition/deletion of fields, but not field type changes .
For this particular case you can create new field instead of changing its type. Coverage with getter/setter can hide old field from outer classes… well, for JAXB and similar reflection-field-access tools you'll have to tweak annotations (make old field transient, make sure new field is initialized or accessed through getter/setter), but it's not activiti problem. Also you can derive new field value out of old field value if needed.
—
You can change blob serialized in ACT_GE_BYTEARRAY if you can find every occurence of your type variables in all history and running processes. You'll have to read blob, deserialize it into old class, transform it into new class and save blob. Probably you'll need different class loader for new class.
You can also derive custom (de)serialization methods for class, saving its version (or serialization options) and (de)serializing some fields differently for different versions. Unfortunately it's not generally compatible to streams that were created without custom serialization as version info should be saved into that same stream in addition to normal data.