I was able to find how to create a board with the BoardManager.createBoard function. It takes a BoardCreationData object as a parameter, but that object only contains the projectId and the jql string. However, that board return the created board object.
I am able to fetch an existing board and get its configuration using the BoardDataService.getDataForBoard function, that return a BoardData object with informations on columns and such (this is what I need to configure).
I am able to create a BoardData object with the BoardData.Builder and specify everything I need. The Board is one of the parameters of the Builder.
However, what I am not able to do, is actually set this BoardData to the Board. Is there a service to either store de BoardData and apply it or set the Board configuration with that BoardData object?