Как поделить базу между микросервисами?
Но немаловажная суть микросервисов в том, что бы минимизировать зависимости, в том числе обеспечить каждый микросервис своей БД.
Именно.

Дублировать данные для каждого микросервиса нет никакого смысла.
В микросервисной архитектуре в дублировании как раз есть смысл. 

Может быть вам просто не нужны микросервисы, какую проблему вашего проекта решает микросервисная архитектура? А может вы наоборот зря заморачиваетесь по поводу дублирования, какие проблемы у вас с ним?
Но немаловажная суть микросервисов в том, что бы минимизировать зависимости, в том числе обеспечить каждый микросервис своей БД. Дублировать данные для каждого микросервиса нет никакого смысла.

вот именно. Поэтому каждый микросервис работает со своими данными. И отвечает за них тоже он и никто другой. 
Если у вас данные дублируются - то это уже большой повод задуматься. 

Если с какими-то данными, за который отвечает микросервис А нужно что-то сделать в микросервисе Б, то надо не дублировать их в Б, а поменять А чтобы он предоставлял апи для работы с этими данными, и вызывать это апи из Б. Дальше А уже сделает то что нужно. 

Конечно для правильного разделения надо будет пересмотреть архитектуру, структуру данных, логику работы и прочее. Но вы вроде этим как раз и хотите заняться а не просто "переписать на java"