Jan 29, 2015
First of all, one of the big features of Version 5.0, released this week, is that it is no longer required to fully define a schema before startup. The catalog and pre-compilation steps have been de-emphasized and it is possible to start VoltDB with no schema, creating tables and procedures by running SQL DDL statements. Look over our new tutorials and our updated examples to get a sense of how this works, but it's much more similar to traditional RDBMSs at this point.
I won't say they aren't advantages to defining your schema up front though as you go to deployment testing and ultimately production. A pre-defined set of SQL schema and application logic, presented as a bundle, makes it easier to replicate environments across testing and production machines.
As for your second question, with a few limitations, you can run alter, add and drop statements at a SQL console or programmatically to manipulate schema in VoltDB. Note that if you have a large amount of data, some of these operations may block ongoing work for milliseconds or seconds while the schema is changed. Add and drop are also much quicker than alter on a table with a lot of data.