I really wanna know who wrote vB_Database_Alter ... that class doesn't really seem to fit with vB Code standards
As for the buddylist problem: I can't reproduce this effect without intentionally putting corrupted data into the database. But even then the above code prevents the error.
You should also keep in mind that uninstalling deletes all existing journal data.