Can I use an embedded Derby database as non-embedded one in future? In this case will I need to migration or I will just need to change the driver in jdbc? If it is more complicated what will I have to do?
Yes, you can. A Derby database is identical, whether it's accessed by a standalone program using the embedded driver, or by multiple client programs communicating with the Derby network server.
The Derby network server is just some "glue" software which implements the DRDA remote database protocols to implement JDBC-over-the-net and then uses the normal embedded database access to access your database on the server side.
If you wish, there is even a slightly more advanced configuration called the "embedded server" which allows you to have your program which uses the embedded driver to access your database share that access with other networked clients by simultaneously acting as a networked server.
Here's some more information about that last option: http://db.apache.org/derby/docs/10.10/adminguide/radminembeddedserverex.html