El CLOB podría crearse de una manera sencilla:
if(obj instanceof String && ((String) obj).length() >= 4000) {
Clob clob = connection.createClob();
clob.setString(1, (String) obj);
stmt.setClob(i+1, clob);
}
Entonces estos clobs deberían ser liberados, por supuesto.