I found the solution:
In your launch-context.xml file, notice the enabled attribute of the jdbc:intialize-database configuration. If it is set to true (which it is by default if you don't explicitly note the attribute, Spring Batch will run the script EVERY TIME you execute the batch job, resulting in a SQL Exception if you run it the second time and on because the metadata tables were already created when Spring Batch ran the first time. After running the batch job the first time, set the enabled attribute to false and Spring will no longer run the SQL creation scripts.
Code:
<jdbc:initialize-database data-source="dataSource" enabled="false">
<jdbc:script location="${batch.schema.script}" />
</jdbc:initialize-database>