} else if (task.getIntermediateTables().isPresent() && !task.getIntermediateTables().get().isEmpty()) {
String firstItermTable = task.getIntermediateTables().get().get(0);
targetTableSchema = newJdbcSchemaFromTableIfExists(con, firstItermTable).get();
task.setNewTableSchema(Optional.of(newTableSchema));
} else {
<BUG>con.createTableIfNotExists(task.getTable(), newTableSchema);

targetTableSchema = newJdbcSchemaFromTableIfExists(con, task.getTable()).get();
</BUG>
task.setNewTableSchema(Optional.<JdbcSchema>absent());

} else if (task.getIntermediateTables().isPresent() && !task.getIntermediateTables().get().isEmpty()) {
String firstItermTable = task.getIntermediateTables().get().get(0);
targetTableSchema = newJdbcSchemaFromTableIfExists(con, firstItermTable).get();
task.setNewTableSchema(Optional.of(newTableSchema));
} else {
con.createTableIfNotExists(task.getActualTable(), newTableSchema);
targetTableSchema = newJdbcSchemaFromTableIfExists(con, task.getActualTable()).get();
task.setNewTableSchema(Optional.<JdbcSchema>absent());
